package admin.dao;


import admin.bean.Expressman;
import exception.ReCodeException;

import java.util.List;
import java.util.Map;

public interface ExpressManDao {

    /**
     * 用于查询数据库中的全部快递员（总快递员数+日注册量）
     * @return  {num:总数,newInto:新增}
     */
    public Map<String,Integer> console();


    /**
     * 用于查询所有快递员，并实现分页
     * @param limit 是否分页的标记，true表示分页，false表示查询所有快递员
     * @param offset SQL语句的起始索引
     * @param pageNumber 每页查询的数量
     * @return  快递员的集合
     */
    public List<Expressman> findAll(boolean limit, int offset, int pageNumber);


    /**
     * 录入新的快递员信息
     * @param expressman 要录入的快递员对象
     * @return 录入的结果，true表示录入成功，false表示录入失败
     */
    public boolean insert(Expressman expressman) throws ReCodeException;


    /**
     * 根据手机号码修改快递员信息
     * @param phone 要修改的快递员手机号
     * @param newExpressman 需要修改的快递员对象
     * @return 返回修改的结果，true表示修改成功，false表示修改失败
     */
    public boolean update(String phone,Expressman newExpressman) throws ReCodeException;


    /**
     * 根据快递员的手机号删除快递信息
     * @param phone 要删除的快递员的手机号
     * @return 返回删除的结果，true表示删除成功，false表示删除失败
     */
    public boolean delete(String phone);
}
